/**
 * 文章路由模块
 */
// 导入 express 模块
const express = require('express')
// 创建路由对象
const router = express.Router()
// 导入文章的路由处理函数模块
const articleHandler = require('../router_handler/article')
// 导入解析 formdata 格式表单数据模块
const multer = require('multer')
// 导入处理路径模块
const path = require('path')
// 导入验证表单数据的中间件
const expressJoi = require('@escook/express-joi')
const { add_article_schema, update_article_schema, delete_article_schema } = require('../schema/article')

// 创建 multer 实例对象，宫格 dest 属性指定文件存放路径
const upload = multer({ dest: path.join(__dirname, '../uploads') })

// 发布新文章
router.post('/add', upload.single('cover_img'), expressJoi(add_article_schema), articleHandler.addArticle)
// 获取文章列表路由
router.get('/list', articleHandler.getArticleList)
// 删除文章
router.delete('/delete/:id', expressJoi(delete_article_schema), articleHandler.deleteArticleById)
// 根据 Id 获取文章详情
router.get('/:id', articleHandler.getArticleById)
// 根据 Id 更新文章信息
router.put('/edit', upload.single('cover_img'), expressJoi(update_article_schema), articleHandler.updateArticleById)

// 向外共享路由对象
module.exports = router